package ningbo.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @Author 宁铂
 * @Date 2021/7/27 21:15
 * @Version 1.0
 */
public class TestList {
    /** 测试list接口 */
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();

        list.add("100");
        list.add("200");
        list.add("300");
        list.add("400");
        list.add("500");
        list.add("600");
        list.add("700");
        System.out.println(list);

        System.out.println(list.contains("100")); //判断是否包含指定元素
        System.out.println(list.equals("100")); //判断两边是否相等
        System.out.println(list.isEmpty()); //判断集合是否为空
        System.out.println(list.remove("100")); //删除指定元素
        System.out.println(list.size()); //获取集合中元素的个数
        System.out.println(Arrays.toString(list.toArray()));

        /** 测试List接口自己的方法 */
        list.add("800"); //未指定下标的情况下添加元素默认添加在最后
        list.add(0, "100"); //可添加在指定的位置上
        System.out.println(list.indexOf("100")); //在集合中第一次出现的下标
        System.out.println(list.lastIndexOf("100")); //最后一次出现的下标

        System.out.println(list.remove(5)); //使用下标删除指定元素,并返回删除的元素
        System.out.println(list.get(3)); //通过下标获取指定元素
        System.out.println(list);

        System.out.println(list.set(5, "1000")); // 修改指定下标的元素

        /** 测试集合间的操作 */
        List<String> list1 = new ArrayList<>();
        list1.add("h");
        list1.add("e");
        list1.add("l");
        list1.add("l");
        list1.add("0");
        System.out.println(list1);

        list.addAll(list1);
        list.addAll(0, list1); //把指定的集合添加的指定的位置上
        System.out.println(list);

        list.containsAll(list1); // 判断外部集合是否包含内部集合的所有元素
        list.removeAll(list1); //删外部元素中所有的内部元素
        System.out.println(list);
    }
}
